<?php
class Inmueble_m extends CI_Model{
 	function __construct(){
	parent::__construct();
	}

               
        /*
         * Insertar nuevo inmueble
         */
        function insert_inmu($codigo_inmu, $fecha_ingreso, $id_tope, $id_tinmue, $titulo_inmu, 
                             $desc_inmu, $dire_inmu, $id_zona, $suptotal_inmu, $supcubierta_inmu,
                             $total_amb, $id_orie, $id_dispo, $id_lumi, $id_estainmu, $id_mone, $valor_inmu, $id_estadv){
            $data = array(
                'codigo_inmu' => $codigo_inmu,
                'fecha_ingreso' => $fecha_ingreso,
                'id_tope' => $id_tope,
                'id_tinmue' => $id_tinmue,
                'titulo_inmu' => $titulo_inmu,
                'desc_inmu' => $desc_inmu,
                'dire_inmu' => $dire_inmu,
                'id_zona' => $id_zona,
                'suptotal_inmu' => $suptotal_inmu,
                'supcubierta_inmu' => $supcubierta_inmu,
                'total_amb' => $total_amb,
                'id_orie' => $id_orie,
                'id_dispo' => $id_dispo,
                'id_lumi' => $id_lumi,
                'id_estainmu' => $id_estainmu,
                'id_mone' => $id_mone,
                'valor_inmu' => $valor_inmu,
                'id_estadv' => $id_estadv,
            );
            $this->db->insert('inmueble', $data);
            $query = $this->db->insert_id();//devuelvo el id del registro insertado.
            return $query;
        }
        
        /*
         * Inserta datos tabla inmueble_ambientes segun check
         */
        function insert_inmuamb($id_inmu,$id_amb){
            $data = array(
                'id_inmu' => $id_inmu,
                'id_amb' => $id_amb,
            );
            $this->db->insert('inmueble_ambientes', $data);
        }
        
        /*
         * Inserta datos tabla inmueble_adicionales segun check
         */
        function insert_inmuadic($id_inmu,$id_adic){
            $data = array(
                'id_inmu' => $id_inmu,
                'id_adic' => $id_adic,
            );
            $this->db->insert('inmueble_adicionales', $data);
        }
        
        /*
         * Inserta datos tabla inmueble_servicios segun check
         */
        function insert_inmuserv($id_inmu,$id_serv){
            $data = array(
                'id_inmu' => $id_inmu,
                'id_serv' => $id_serv,
            );
            $this->db->insert('inmueble_servicios', $data);
        }
        
        /*
         * Controles para no repetir los datos extra del inmueble en caso de retroceder al formulario
         * 1 - controlo si existen registros con el id del inmueble/ si es asi los elimino y luego los cargo de nuevo
         */
        
        function count_inmuamb($id_inmu){
            $this->db->where('id_inmu', $id_inmu);
            return $query = $this->db->count_all_results('inmueble_ambientes');
        }
        
        function delete_inmuamb($id_inmu){
            $this->db->where('id_inmu', $id_inmu);
            $this->db->delete('inmueble_ambientes'); 
        }
        
        function count_inmuadic($id_inmu){
            $this->db->where('id_inmu', $id_inmu);
            return $query = $this->db->count_all_results('inmueble_adicionales');
        }
        
        function delete_inmuadic($id_inmu){
            $this->db->where('id_inmu', $id_inmu);
            $this->db->delete('inmueble_adicionales'); 
        }
        
        function count_inmuserv($id_inmu){
            $this->db->where('id_inmu', $id_inmu);
            return $query = $this->db->count_all_results('inmueble_servicios');
        }
        
        function delete_inmuserv($id_inmu){
            $this->db->where('id_inmu', $id_inmu);
            $this->db->delete('inmueble_servicios'); 
        }
        
        /*
         * Insert insert_inmu_prop agrego un propietario al inmueble
         */
        function insert_inmu_prop($id_inmu, $id_clie, $fecha_asig, $last_inmuprop = 1){
            $data = array(
                'id_inmu' => $id_inmu,
                'id_clie' => $id_clie,
                'fecha_asig' => $fecha_asig,
                'last_inmuprop' => $last_inmuprop,
            );
            $this->db->insert('inmueble_propietario', $data);
        }
        
        /*
         * resumen del inmueble cargado.
         */
         function get_inmue($id_inmu){
             $this->db->select('inmueble.id_inmu, inmueble.codigo_inmu, inmueble.fecha_ingreso, tipo_operacion.desc_tope, tipo_inmueble.desc_tinmue, inmueble.titulo_inmu, inmueble.desc_inmu, inmueble.dire_inmu, zona.nomb_zona,
                                localidad.nomb_loca, provincia.nomb_prov, pais.nomb_pais, inmueble.suptotal_inmu, inmueble.supcubierta_inmu, inmueble.total_amb, orientacion.orie_desc, disposicion.desc_dispo, luminosidad.desc_lumi, estado_inmu.desc_estainmu, moneda.desc_mone, inmueble.valor_inmu');
             $this->db->from('inmueble');
             $this->db->join('tipo_operacion', 'inmueble.id_tope = tipo_operacion.id_tope', 'inner');
             $this->db->join('tipo_inmueble', 'inmueble.id_tinmue = tipo_inmueble.id_tinmue', 'inner');
             $this->db->join('zona', 'inmueble.id_zona = zona.id_zona', 'inner');
             $this->db->join('localidad', 'localidad.id_loca = zona.id_loca', 'inner');
             $this->db->join('provincia', 'provincia.id_prov = localidad.id_prov', 'inner');
             $this->db->join('pais', 'provincia.id_pais = pais.id_pais', 'inner');
             $this->db->join('orientacion', 'inmueble.id_orie = orientacion.id_orie', 'inner');
             $this->db->join('disposicion', 'inmueble.id_dispo = disposicion.id_dispo', 'inner');
             $this->db->join('luminosidad', 'inmueble.id_lumi = luminosidad.id_lumi', 'inner');
             $this->db->join('estado_inmu', 'inmueble.id_estainmu = estado_inmu.id_estainmu', 'inner');
             $this->db->join('moneda', 'inmueble.id_mone = moneda.id_mone', 'inner');
             $this->db->where('id_inmu',$id_inmu);
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->row();
                 }
          }
          
          /*
           * Obtener el listado de todos los inmuebles
           */
         function get_all_inmue(){
             $this->db->select('inmueble.id_inmu, inmueble.codigo_inmu, inmueble.fecha_ingreso, tipo_operacion.desc_tope,tipo_inmueble.desc_tinmue, zona.nomb_zona, localidad.nomb_loca, provincia.nomb_prov, pais.nomb_pais');
             $this->db->from('inmueble');
             $this->db->join('tipo_operacion', 'inmueble.id_tope = tipo_operacion.id_tope', 'inner');
             $this->db->join('tipo_inmueble', 'inmueble.id_tinmue = tipo_inmueble.id_tinmue', 'inner');
             $this->db->join('zona', 'inmueble.id_zona = zona.id_zona', 'inner');
             $this->db->join('localidad', 'localidad.id_loca = zona.id_loca', 'inner');
             $this->db->join('provincia', 'provincia.id_prov = localidad.id_prov', 'inner');
             $this->db->join('pais', 'provincia.id_pais = pais.id_pais', 'inner');
             $this->db->order_by('inmueble.fecha_ingreso', 'desc');
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->result();
                 }
          }
          
           /*
           * Obtener el listado de inmuebles todos los inmuebles y ademas indica si tienen un propietario cargado o no.
           */
         function get_all_inmueprop(){
             $this->db->select('inmueble.id_inmu, inmueble.codigo_inmu, inmueble.fecha_ingreso, tipo_operacion.desc_tope, tipo_inmueble.desc_tinmue, zona.nomb_zona, localidad.nomb_loca, provincia.nomb_prov, pais.nomb_pais, inmueble_propietario.id_inmu_prop');
             $this->db->from('inmueble');
             $this->db->join('tipo_operacion', 'inmueble.id_tope = tipo_operacion.id_tope', 'inner');
             $this->db->join('tipo_inmueble', 'inmueble.id_tinmue = tipo_inmueble.id_tinmue', 'inner');
             $this->db->join('zona', 'inmueble.id_zona = zona.id_zona', 'inner');
             $this->db->join('localidad', 'localidad.id_loca = zona.id_loca', 'inner');
             $this->db->join('provincia', 'provincia.id_prov = localidad.id_prov', 'inner');
             $this->db->join('pais', 'provincia.id_pais = pais.id_pais', 'inner');
             $this->db->join('inmueble_propietario', 'inmueble.id_inmu = inmueble_propietario.id_inmu', 'left');
             
             $this->db->order_by('inmueble.fecha_ingreso', 'desc');
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->result();
                 }
          }
          
          
          /*
           * Ambientes de un inmueble
           */
          function get_inmuamb($id_inmu){
             $this->db->select('ambientes.desc_amb');
             $this->db->from('inmueble_ambientes');
             $this->db->join('ambientes ', 'ambientes.id_amb = inmueble_ambientes.id_amb', 'inner');
             $this->db->where('inmueble_ambientes.id_inmu',$id_inmu);
             $this->db->order_by('ambientes.desc_amb','ASC');
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->result();
                 }
          }

           /*
           * Adicionales de un inmueble
           */
          function get_inmuadic($id_inmu){
             $this->db->select('adicionales.desc_adic');
             $this->db->from('inmueble_adicionales');
             $this->db->join('adicionales ', 'adicionales.id_adic = inmueble_adicionales.id_adic', 'inner');
             $this->db->where('inmueble_adicionales.id_inmu',$id_inmu);
             $this->db->order_by('adicionales.desc_adic','ASC');
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->result();
                 }
          }
          
           /*
           * Servicios de un inmueble
           */
          function get_inmuserv($id_inmu){
             $this->db->select('servicios.desc_serv');
             $this->db->from('inmueble_servicios');
             $this->db->join('servicios', 'servicios.id_serv = inmueble_servicios.id_serv', 'inner');
             $this->db->where('inmueble_servicios.id_inmu',$id_inmu);
             $this->db->order_by('servicios.desc_serv','ASC');
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->result();
                 }
          }
          
           /*
           * imagenes de un inmueble
           */
          function get_inmuimg($id_inmu){
             $this->db->select('inmueble_imagenes.id_img, inmueble_imagenes.name_img');
             $this->db->from('inmueble_imagenes');
             $this->db->where('inmueble_imagenes.id_inmu',$id_inmu);
             $query = $this->db->get();
             if($query->num_rows()>0){
                 return $query->result();
                 }
          }
          
          /*
           * Propietarios de un inmueble
           */
          function get_inmuprop($id_inmu){
              $this->db->select('cliente.id_clie, cliente.codigo_clie, cliente.nomb_clie, cliente.apel_clie, inmueble_propietario.fecha_asig, inmueble_propietario.last_inmuprop');
              $this->db->from('inmueble_propietario');
              $this->db->join('cliente', 'cliente.id_clie = inmueble_propietario.id_clie', 'inner');
              $this->db->where('inmueble_propietario.id_inmu',$id_inmu);
              $this->db->order_by('inmueble_propietario.fecha_asig ','DESC');
              $query = $this->db->get();
              if($query->num_rows()>0){
                 return $query->result();
                 }
          }
          
        /*
         * Contar y actualizar estado previo de propietarios antiguos en caso de que se ingrese un nuevo propietario
         */
        function count_inmuprop($id_inmu){
            $this->db->select('inmueble_propietario.id_clie');
            $this->db->from('inmueble_propietario');
            $this->db->where('inmueble_propietario.id_inmu',$id_inmu);
            $query = $this->db->get();
              if($query->num_rows()>0){
                 return TRUE;
                 }
        }
        
        /*
         * Si hay mas de un propietario actualizo el estado de los cargados antes de ingresar el nuevo.
         */
        function update_inmuprop($id_inmu, $id_clie){
            $data = array(
               'last_inmuprop' => 0,
            );
            $this->db->where('id_inmu', $id_inmu);
            $this->db->where('id_clie', $id_clie);
            $this->db->update('inmueble_propietario', $data); 
        }

        
     

        
    
}//Fin del modelo Inmueble_m